/**
 * User: alesj
 * Date: 11.1.2006
 * Time: 12:21:25
 * 
 * (C) Genera Lynx d.o.o.
 */

package com.alesj.blueberry.ejb.dao;

import com.alesj.blueberry.ejb.common.BusinessManager;
import com.alesj.blueberry.par.basic.GameObject;
import com.alesj.blueberry.par.basic.RequestEntry;
import com.alesj.blueberry.par.basic.ValidationError;
import com.alesj.blueberry.par.basic.ErrorLog;
import com.alesj.blueberry.spring.games.Game;

/**
 * DAO interface.
 * All data access should go through this object.
 *
 * @author <a href="mailto:ales.justin@genera-lynx.com">Ales Justin</a>
 */
public interface BasicDAO extends BusinessManager {

    /**
     * Save param.
     * @param requestEntry
     */
    void saveRequestEntry(RequestEntry requestEntry);

    /**
     * Save param.
     * @param validationError
     */
    void saveValidationError(ValidationError validationError);

    /**
     * Save param.
     * @param gameObject
     */
    void saveGameObject(GameObject gameObject);

    /**
     * Save param.
     * @param errorLog
     */
    void saveErrorLog(ErrorLog errorLog);

    /**
     * Find matching price for game object.
     * @param gameObject
     * @param game
     * @return price
     */
    double findPrice(GameObject gameObject, Game game);

}
